package model

import (
	"gitee.com/wz-open-platform/wzopen-sdk-go/constants"
)

type GetDeviceSettingOnlineCardInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceSettingOnlineCardInfoResp struct {
	Code      int                                `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                             `json:"message"`   // 消息描述
	Data      GetDeviceSettingOnlineCardInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                              `json:"timestamp"` // 时间戳
}

type GetDeviceSettingOnlineCardInfoData struct {
	ID           int    `json:"id"`
	DeviceNum    string `json:"deviceNum"`    // 设备编号
	PasswordA    string `json:"passwordA"`    // 秘钥A
	PasswordB    string `json:"passwordB"`    // 秘钥B
	Sector       int    `json:"sector"`       // 扇区 (1-15)
	IsMultiPay   int    `json:"isMultiPay"`   // 是否支持多路支付
	ChargeMode   int    `json:"chargeMode"`   // 充电模式: 0 时间模式; 1 电量模式; 2 功率模式; 3 按键免费; 4  包月模式; 5 时间电量模式; 6 刷卡免费; 7 时间模式2; 8 电量模式2; 9 功率模式2;
	IsEnable     int    `json:"isEnable"`     // 是否开启功能
	IsOfflinePay int    `json:"isOfflinePay"` // 是否支持离线支付
	Free         int    `json:"free"`         // 免费
	CreatedAt    string `json:"createdAt"`    // 创建时间
	UpdatedAt    string `json:"updatedAt"`    // 更新时间
	DeletedAt    string `json:"deletedAt"`    // 删除时间
}

type DeviceSaveModeReq struct {
	DeviceNum           *string                  `json:"device_num"`            // 设备编号
	ChargeMode          *constants.ChargeMode    `json:"charge_mode"`           // 充电模式: 0 时间模式; 1 电量模式; 2 功率模式; 7 时间模式2; 8 电量模式2; 9 功率模式2
	ChargeType          *constants.ChargeType    `json:"charge_type"`           // 设备充电类型: fixed固定 custom自定义
	ChargeValue         *[]string                `json:"charge_value"`          // 收费类型 数组
	MaxPower            *int                     `json:"max_power"`             // 最大功率
	StartFee            *int                     `json:"start_fee"`             // 起充金额 (单位: 分)
	MaxPayFee           *int                     `json:"max_pay_fee"`           // 最大金额 (单位: 分)
	PaymentValue        *[]int                   `json:"payment_value"`         // 每档总的金额 (单位: 分)
	TimeValue           *[]int                   `json:"time_value"`            // 每档总的时间 (单位: 秒)
	WorkCharge          *int                     `json:"work_charge"`           // 电费 (单位: 分/度)
	WorkChargeFourDigit *int                     `json:"work_charge_fourdigit"` // 电费 (四位数，如 10000 代表 1 元/度)
	PowerValue          *[]int                   `json:"power_value"`           // 功率时间段
	PriceValue          *[]int                   `json:"price_value"`           // 支付金额段
	CheckTime           *int                     `json:"check_time"`            // 功率检测时间
	IncTime             *int                     `json:"inc_time"`              // 结算进位时间
	Type                *int                     `json:"type"`                  // 设置类型: 0 基础设置; 1 高级设置
	CountMode           *int                     `json:"count_mode"`            // 功率模式计费模式
	DisplayDelay        *string                  `json:"display_delay"`         // 延迟显示时间 (0 表示不延迟显示, 最大 60s)
	IsNotDisturb        *string                  `json:"is_not_disturb"`        // 是否设置免打扰: 0 未设置; 1 设置
	NotDisturbStart     *string                  `json:"not_disturb_start"`     // 免打扰开始时间
	NotDisturbEnd       *string                  `json:"not_disturb_end"`       // 免打扰结束时间
	NotDisturbVolume    *int                     `json:"not_disturb_volume"`    // 免打扰音量
	IsOutage            *constants.IsOutage      `json:"is_outage"`             // 是否禁止断电: 0 不禁止; 1 禁止
	AutoOffWaitTime     *int                     `json:"auto_off_wait_time"`    // 断电等待时间
	AutoOffLowerPower   *int                     `json:"auto_off_lower_power"`  // 断电下限功率
	FloatingChargeTime  *string                  `json:"floating_charge_time"`  // 浮充时间
	FloatingChargePower *int                     `json:"floating_charge_power"` // 浮充功率
	WhetherRefund       *constants.WhetherRefund `json:"whether_refund"`        // 是否可退款: 0 不可退款; 1 可退款
	IsFreeCharge        *constants.IsFreeCharge  `json:"is_free_charge"`        // 是否免费充电: 0 付费充电; 1 免费充电
	DetectTime          *int                     `json:"detect_time"`           // 端口预检测时间
}

type DeviceSaveModeResp struct {
	Code      int                `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string             `json:"message"`   // 消息描述
	Data      DeviceSaveModeData `json:"data"`      // 数据，可以为 null
	Timestamp int64              `json:"timestamp"` // 时间戳
}

type DeviceSaveModeData struct {
	Result bool `json:"result"`
}

type GetDeviceModeTimeInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModeTimeInfoResp struct {
	Code      int                         `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                      `json:"message"`   // 消息描述
	Data      []GetDeviceModeTimeInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                       `json:"timestamp"` // 时间戳
}

type GetDeviceModeTimeInfoData struct {
	ID            int    `json:"id"`
	DeviceNum     string `json:"deviceNum"`     // 设备编号
	ChargeType    string `json:"chargeType"`    // 收费类型: fixed, custom
	ChargeValue   string `json:"chargeValue"`   // 收费方式
	MaxPower      int    `json:"maxPower"`      // 最大功率
	StartFee      int    `json:"startFee"`      // 起充金额
	MaxPayFee     int    `json:"maxPayFee"`     // 最大付款金额
	WhetherRefund int    `json:"whetherRefund"` // 充电完成是否退款
	CreatedAt     string `json:"createdAt"`     // 创建时间
	UpdatedAt     string `json:"updatedAt"`     // 更新时间
}

type GetDeviceModeTime1InfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModeTime1InfoResp struct {
	Code      int                        `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                     `json:"message"`   // 消息描述
	Data      GetDeviceModeTime1InfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                      `json:"timestamp"` // 时间戳
}

type GetDeviceModeTime1InfoData struct {
	ID            int    `json:"id"`
	DeviceNum     string `json:"deviceNum"`     // 设备编号
	ChargeType    string `json:"chargeType"`    // 收费类型: fixed, custom
	PaymentValue  string `json:"paymentValue"`  // 每档总的金额 分
	TimeValue     string `json:"timeValue"`     // 每档总的时间 秒
	MaxPower      int    `json:"maxPower"`      // 最大功率
	StartFee      int    `json:"startFee"`      // 起充金额
	WhetherRefund int    `json:"whetherRefund"` // 充电完成是否退款
	Reserve1      int    `json:"reserve1"`      // 保留
	Reserve2      int    `json:"reserve2"`      // 保留
	CreatedAt     string `json:"createdAt"`     // 创建时间
	UpdatedAt     string `json:"updatedAt"`     // 更新时间
}

type GetDeviceSettingCoinInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}
type GetDeviceSettingCoinInfoResp struct {
	Code      int                          `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                       `json:"message"`   // 消息描述
	Data      GetDeviceSettingCoinInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                        `json:"timestamp"` // 时间戳
}

type GetDeviceSettingCoinInfoData struct {
	ID             int    `json:"id"`
	DeviceNum      string `json:"deviceNum"`      // 设备编号
	IsEnable       int    `json:"isEnable"`       // 是否启动投币功能
	ChargeMode     int    `json:"chargeMode"`     // 充电模式
	SignalTime     int    `json:"signalTime"`     // 信号持续时间
	SignalTolerate int    `json:"signalTolerate"` // 信号容差
	OverReturnTime int    `json:"overReturnTime"` // 电平反转时间
	Free           int    `json:"free"`           // 免费
	CreatedAt      string `json:"createdAt"`      // 创建时间
	UpdatedAt      string `json:"updatedAt"`      // 更新时间
}

type FindMultiDevicesReq struct {
	DeviceNums *[]string `json:"device_nums"` // 设备编号列表
}

type FindMultiDevicesResp struct {
	Code      int                  `json:"code"`           // 状态码，1 表示成功，-1表示失败
	Message   string               `json:"message"`        // 消息描述
	Data      FindMultiDevicesData `json:"data,omitempty"` // 数据，可以为 null
	Timestamp int64                `json:"timestamp"`      // 时间戳
}

type FindMultiDevicesData struct {
	Count int                                   `json:"count"`
	List  []map[string]DeviceInfoForMultiDevice `json:"list"`
}

type DeviceInfoForMultiDevice struct {
	ID             int           `json:"id"`
	DeviceNum      string        `json:"deviceNum"`      // 设备编号
	IotPhone       string        `json:"iotPhone"`       // 设备编号
	DeviceType     int           `json:"deviceType"`     // 设备类型 0普通慢充款 1功率慢充款 2电量慢充款 3快充款 4功率款10 5电量款20 6两路功率慢充 8普通功率款 9lora网关 10lora节点 11功率款10C 12汽车交流桩70 13汽车慢充桩 18汽车交流桩双枪 17汽车快充桩 19两路功率款-10A 20两路功率款-16A 21汽车家用充电桩
	MaturityAt     string        `json:"maturityAt"`     // 到期时间
	CreatedAt      string        `json:"createdAt"`      // 创建时间
	UpdatedAt      string        `json:"updatedAt"`      // 更新时间
	Specification  Specification `json:"specification"`  // 规格信息
	Status         Status        `json:"status"`         // 状态
	Netcard        Netcard       `json:"netcard"`        // 物联网信息 具体参见设备列表
	CanUpgrade     bool          `json:"canUpgrade"`     // 能否升级 1能 0不能
	UpgradeNo      string        `json:"upgradeNo"`      // 升级编号
	DeviceTypeName string        `json:"deviceTypeName"` // 设备类型字段描述
}

type DeviceAddReq struct {
	DeviceNum *string `json:"device_num"` // 设备编号
}

type DeviceAddResp struct {
	Code      int           `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string        `json:"message"`   // 消息描述
	Data      DeviceAddData `json:"data"`      // 数据，可以为 null
	Timestamp int64         `json:"timestamp"` // 时间戳
}

type DeviceAddData struct {
	DeviceId string `json:"deviceId"` // 新增的设备ID
}

type GetDeviceModeWorkInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModeWorkInfoResp struct {
	Code      int                         `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                      `json:"message"`   // 消息描述
	Data      []GetDeviceModeWorkInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                       `json:"timestamp"` // 时间戳
}

type GetDeviceModeWorkInfoData struct {
	ID                  int    `json:"id"`
	DeviceNum           string `json:"deviceNum"`           // 设备编号
	WorkCharge          int    `json:"workCharge"`          // 电费: n分/度
	WorkChargeFourdigit int    `json:"workChargeFourdigit"` // 电费: n毫/度；4位小数计费
	Profits             int    `json:"profits"`             // 利润: n分/度
	StartFee            int    `json:"startFee"`            // 起充金额 分为单位
	MaxPower            int    `json:"maxPower"`            // 最大功率
	MaxPayFee           int    `json:"maxPayFee"`           // 最大付款金额 分为单位
	WhetherRefund       int    `json:"whetherRefund"`       // 充电完成是否退款
	CreatedAt           string `json:"createdAt"`           // 创建时间
	UpdatedAt           string `json:"updatedAt"`           // 更新1时间
}

type GetDeviceModeWork1InfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModeWork1InfoResp struct {
	Code      int                              `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                           `json:"message"`   // 消息描述
	Data      []GetDeviceModeWork1InfoRespData `json:"data"`      // 数据，可以为 null
	Timestamp int64                            `json:"timestamp"` // 时间戳
}

type GetDeviceModeWork1InfoRespData struct {
	ID                  int    `json:"id"`
	DeviceNum           string `json:"deviceNum"`           // 设备编号
	PaymentValue        string `json:"paymentValue"`        // 每档总的金额 分
	WorkCharge          int    `json:"workCharge"`          // 电费: n分/度
	WorkChargeFourdigit int    `json:"workChargeFourdigit"` // 电费: n毫/度；4位小数计费
	StartFee            int    `json:"startFee"`            // 起充金额
	WhetherRefund       int    `json:"whetherRefund"`       // 充电完成是否退款
	MaxPower            int    `json:"maxPower"`            // 最大功率
	Reserve1            int    `json:"reserve1"`            // 保留
	Reserve2            int    `json:"reserve2"`            // 保留
	CreatedAt           string `json:"createdAt"`           // 创建时间
	UpdatedAt           string `json:"updatedAt"`           // 更新时间
}

type GetDeviceModePowerInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModePowerInfoResp struct {
	Code      int                          `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                       `json:"message"`   // 消息描述
	Data      []GetDeviceModePowerInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                        `json:"timestamp"` // 时间戳
}

type GetDeviceModePowerInfoData struct {
	ID            int    `json:"id"`
	DeviceNum     string `json:"deviceNum"`     // 设备编号
	PowerValue    string `json:"powerValue"`    // 功率段{上线功率:每次增加时间,...}
	PriceValue    string `json:"priceValue"`    // 每次支付金额0,0,0,0,0,0,0,0,0,0
	CheckTime     int    `json:"checkTime"`     // 功率检测时间 0表示始终检测
	IncTime       int    `json:"incTime"`       // 结算进位时间
	WhetherRefund int    `json:"whetherRefund"` // 充电完成是否退款
	CountMode     int    `json:"countMode"`     // 功率模式计费模式(0按金额档位增加时间 1按金额比例增加时间
	Type          int    `json:"type"`          // 设置类型[0基础设置1高级设置]
	CreatedAt     string `json:"createdAt"`     // 创建时间
	UpdatedAt     string `json:"updatedAt"`     // 更新时间
}

type GetDeviceModePower1InfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceModePower1InfoResp struct {
	Code      int                           `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                        `json:"message"`   // 消息描述
	Data      []GetDeviceModePower1InfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                         `json:"timestamp"` // 时间戳
}

type GetDeviceModePower1InfoData struct {
	ID            int    `json:"id"`
	DeviceNum     string `json:"deviceNum"`     // 设备编号
	PowerValue    string `json:"powerValue"`    // 功率段{上线功率:每次增加时间,...}
	PriceValue    string `json:"priceValue"`    // 每次支付金额0,0,0,0,0,0,0,0,0,0
	CheckTime     int    `json:"checkTime"`     // 功率检测时间 0表示始终检测
	IncTime       int    `json:"incTime"`       // 结算进位时间
	WhetherRefund int    `json:"whetherRefund"` // 充电完成是否退款
	CountMode     int    `json:"countMode"`     // 功率模式计费模式(0按金额档位增加时间 1按金额比例增加时间
	Type          int    `json:"type"`          // 设置类型[0基础设置1高级设置]
	DisplayDelay  int    `json:"displayDelay"`  // 延迟显示时间 0表示不延迟显示
	Reserve2      int    `json:"reserve2"`      // 保留
	CreatedAt     string `json:"createdAt"`     // 创建时间
	UpdatedAt     string `json:"updatedAt"`     // 更新时间
}

type DeviceFindListReq struct {
	DeviceNum  string               `json:"device_num"`  // 设备编号
	Page       int                  `json:"page"`        // 页码
	PageSize   int                  `json:"page_size"`   // 页数
	DeviceType constants.DeviceType `json:"device_type"` // 设备类型　设备类型 0普通慢充款 1功率慢充款 2电量慢充款 3快充款 4功率款10 5电量款20 6两路功率慢充 8普通功率款 9lora网关 10lora节点 11功率款10C 12汽车交流桩70 13汽车慢充桩 18汽车交流桩双枪 17汽车快充桩 19两路功率款-10A 20两路功率款-16A 21汽车家用充电桩
	IotPhone   string               `json:"iot_phone"`   // 物联网卡号
}

type DeviceFindListResp struct {
	Code      int                `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string             `json:"message"`   // 消息描述
	Data      DeviceFindListData `json:"data"`      // 数据，可以为 null
	Timestamp int64              `json:"timestamp"` // 时间戳
}

type DeviceFindListData struct {
	Count int          `json:"count"`
	List  []DeviceInfo `json:"list"`
}

type DeviceInfo struct {
	ID             int           `json:"id"`
	DeviceNum      string        `json:"deviceNum"`      // 设备编号
	IotPhone       string        `json:"iotPhone"`       // 物联网卡号
	DeviceType     int           `json:"deviceType"`     // 设备类型 0普通慢充款 1功率慢充款 2电量慢充款 3快充款 4功率款10 5电量款20 6两路功率慢充 8普通功率款 9lora网关 10lora节点 11功率款10C 12汽车交流桩70 13汽车慢充桩 18汽车交流桩双枪 17汽车快充桩 19两路功率款-10A 20两路功率款-16A 21汽车家用充电桩
	MaturityAt     string        `json:"maturityAt"`     // 到期时间
	CreatedAt      string        `json:"createdAt"`      // 设备创建时间
	UpdatedAt      string        `json:"updatedAt"`      // 设备更新时间
	Specification  Specification `json:"specification"`  //
	Status         Status        `json:"status"`         //
	Netcard        Netcard       `json:"netcard"`        //
	CanUpgrade     bool          `json:"canUpgrade"`     // 能否升级 1能 0不能
	UpgradeNo      string        `json:"upgradeNo"`      // 升级编号
	DeviceTypeName string        `json:"deviceTypeName"` // 设备类型字段描述
}

type Specification struct {
	SoftwareVer   string `json:"softwareVer"`   // 软件版本号
	ModuleSoftVer string `json:"moduleSoftVer"` // module软件版本号
	Imei          string `json:"imei"`          //
	Imsi          string `json:"imsi"`          //
	ChipId        string `json:"chipId"`        // 芯片ID
}

type DeviceDelReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type DeviceDelResp struct {
	Code      int           `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string        `json:"message"`   // 消息描述
	Data      DeviceDelData `json:"data"`      // 数据，可以为 null
	Timestamp int64         `json:"timestamp"` // 时间戳
}

type DeviceDelData struct {
	Result bool `json:"result"`
}

type DeviceGetModeReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type DeviceGetModeResp struct {
	Code      int               `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string            `json:"message"`   // 消息描述
	Data      DeviceGetModeData `json:"data"`      // 数据，可以为 null
	Timestamp int64             `json:"timestamp"` // 时间戳
}

type Mode struct {
	ChargeType    string   `json:"chargeType"`    // 设备充电类型 fixed固定 custom自定义
	ChargeValue   []string `json:"chargeValue"`   // 充电类型数据
	MaxPower      int      `json:"maxPower"`      // 最大功率
	MaxPayFee     int      `json:"maxPayFee"`     // 最大付款金额
	StartFee      int      `json:"startFee"`      // 起充金额
	WhetherRefund int      `json:"whetherRefund"` // 是否可退款 0不可退款 1可退款
}

type NotDisturb struct {
	IsNotDisturb     int    `json:"isNotDisturb"`     // 是否设置免打扰 0 未设置 1设置
	NotDisturbStart  string `json:"notDisturbStart"`  // 免打扰开始时间
	NotDisturbEnd    string `json:"notDisturbEnd"`    // 免打扰结束时间
	NotDisturbVolume int    `json:"notDisturbVolume"` // 免打扰音量
}

type UserSetting struct {
	AutoOffWaitTime     int `json:"autoOffWaitTime"`     // 断电等待时间 单位s
	AutoOffLowerPower   int `json:"autoOffLowerPower"`   // 断电下限功率
	FloatingChargeTime  int `json:"floatingChargeTime"`  // 浮充时间
	FloatingChargePower int `json:"floatingChargePower"` // 浮充功率
	IsFreeCharge        int `json:"isFreeCharge"`        // 是否免费充电 0 付费充电 1 免费充电
	DetectTime          int `json:"detectTime"`          // 端口预检测时间(目前参数可为: 0,5,6,7,8,9,10)
	IsOutage            int `json:"isOutage"`            // 是否禁止断电 1禁止 0不禁止
}

type DeviceGetModeData struct {
	Mode        Mode        `json:"mode"`
	NotDisturb  NotDisturb  `json:"notDisturb"`
	UserSetting UserSetting `json:"userSetting"`
	ChargeMode  int         `json:"chargeMode"` // 充电模式: 0 时间模式; 1 电量模式; 2 功率模式; 7 时间模式2; 8 电量模式2; 9 功率模式2;
	DeviceType  int         `json:"deviceType"` // 设备类型 0普通慢充款 1功率慢充款 2电量慢充款 3快充款 4功率款10 5电量款20 6两路功率慢充 8普通功率款 11功率款10C 12汽车交流桩70 13汽车慢充桩 18汽车交流桩双枪
}

type GetDeviceSettingUserInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceSettingUserInfoResp struct {
	Code      int                          `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                       `json:"message"`   // 消息描述
	Data      GetDeviceSettingUserInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                        `json:"timestamp"` // 时间戳
}

type GetDeviceSettingUserInfoData struct {
	ID                  int    `json:"id"`                  //
	DeviceNum           string `json:"deviceNum"`           // 设备编号
	PayOrder            int    `json:"payOrder"`            // 支付顺序 0-先支付、1-先按键
	SelectWaitTime      int    `json:"selectWaitTime"`      // 支付等待时间
	FloatingChargeTime  int    `json:"floatingChargeTime"`  // 浮冲时间（分钟）0~120分钟
	FloatingChargePower int    `json:"floatingChargePower"` // 浮冲功率 10~100瓦
	AutoOffWaitTime     int    `json:"autoOffWaitTime"`     // 自动关闭条件- 等待时间 .秒 30~240s
	AutoOffLowerPower   int    `json:"autoOffLowerPower"`   // 自动关闭条件-下限功率 0~10瓦
	PayTimeOut          int    `json:"payTimeOut"`          // 全额退款时间 秒
	CardRechargeTimeOut int    `json:"cardRechargeTimeOut"` // 卡片充值超时时间 (无设置就算0)
	Volume              int    `json:"volume"`              // 整机音量0-7
	Luminance           int    `json:"luminance"`           // 数码管亮度 0-7
	StartChannel        int    `json:"startChannel"`        // 起始通道。\r\n这里设置0，表示从1开始\r\n这里设置1，表示从0开始
	Reserve2            int    `json:"reserve2"`            // 保留
	Reserve3            int    `json:"reserve3"`            // 保留
	AutoOffStartAt      string `json:"autoOffStartAt"`      // 断电开始时间 分钟
	AutoOffStopAt       string `json:"autoOffStopAt"`       // 断电结束时间 分钟
	IsAutoOff           int    `json:"isAutoOff"`           // 是否定时断电
	AutoReserve         int    `json:"autoReserve"`         // 保留
	DetectTime          int    `json:"detectTime"`          // 端口预检查时间秒
	IsFreeCharge        int    `json:"isFreeCharge"`        // 是否免费充电 0 付费充电 1 免费充电
	Reserve4            int    `json:"reserve4"`            // 保留
	CreatedAt           string `json:"createdAt"`           // 创建时间
	UpdatedAt           string `json:"updatedAt"`           // 更新时间
	DeletedAt           string `json:"deletedAt"`           // 删除时间
}

type GetDeviceSettingNotDisturbInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceSettingNotDisturbInfoResp struct {
	Code      int                                `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                             `json:"message"`   // 消息描述
	Data      GetDeviceSettingNotDisturbInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                              `json:"timestamp"` // 时间戳
}

type GetDeviceSettingNotDisturbInfoData struct {
	ID               int    `json:"id"`
	DeviceNum        string `json:"deviceNum"`        // 设备编号
	NotDisturbStart  string `json:"notDisturbStart"`  // 免打扰开始时间
	NotDisturbEnd    string `json:"notDisturbEnd"`    // 免打扰结束时间
	NotDisturbVolume int    `json:"notDisturbVolume"` // 免打扰模式音量
	IsNotDisturb     int    `json:"isNotDisturb"`     // 是否开启免打扰: 1是,0否
	CreatedAt        string `json:"createdAt"`        // 创建时间
	UpdatedAt        string `json:"updatedAt"`        // 更新时间
}

type DeviceFindOneReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type DeviceFindOneResp struct {
	Code      int                 `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string              `json:"message"`   // 消息描述
	Data      []DeviceFindOneData `json:"data"`      // 数据，可以为 null
	Timestamp int64               `json:"timestamp"` // 时间戳
}

type DeviceFindOneData struct {
	ID             int           `json:"id"`
	DeviceNum      string        `json:"deviceNum"`      // 主键ID
	IotPhone       string        `json:"iotPhone"`       // 物联网卡号
	DeviceType     int           `json:"deviceType"`     // 设备类型
	MaturityAt     string        `json:"maturityAt"`     // 到期时间
	CreatedAt      string        `json:"createdAt"`      // 创建时间
	UpdatedAt      string        `json:"updatedAt"`      // 更新时间
	Specification  Specification `json:"specification"`  //
	Status         Status        `json:"status"`         //
	Netcard        Netcard       `json:"netcard"`        //
	CanUpgrade     bool          `json:"canUpgrade"`     //
	UpgradeNo      string        `json:"upgradeNo"`      //
	DeviceTypeName string        `json:"deviceTypeName"` // 设备类型描述
}

type Status struct {
	Signal         int           `json:"signal"`         // 信号值
	IsOnline       bool          `json:"isOnline"`       // 是否在线 1在线 0离线
	ConnectionType string        `json:"connectionType"` // 连接类型
	State          []interface{} `json:"state"`          // 状态
}

type Netcard struct {
	Region  string `json:"region"`  // 地区
	LCycle  int    `json:"lCycle"`  //
	EPeriod string `json:"ePeriod"` //
	IsStop  int    `json:"isStop"`  //
}
type GetDeviceSettingOfflineCardInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceSettingOfflineCardInfoResp struct {
	Code      int                                 `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                              `json:"message"`   // 消息描述
	Data      GetDeviceSettingOfflineCardInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                               `json:"timestamp"` // 时间戳
}

type GetDeviceSettingOfflineCardInfoData struct {
	ID           int    `json:"id"`
	DeviceNum    string `json:"deviceNum"`    // 设备编号
	PasswordA    string `json:"passwordA"`    // 秘钥A
	PasswordB    string `json:"passwordB"`    // 秘钥B
	Sector       int    `json:"sector"`       // 扇区 (1-15)
	IsMultiPay   int    `json:"isMultiPay"`   // 是否支持多路支付
	ChargeMode   int    `json:"chargeMode"`   // 充电模式: 0 时间模式; 1 电量模式; 2 功率模式; 3 按键免费; 4  包月模式; 5 时间电量模式; 6 刷卡免费; 7 时间模式2; 8 电量模式2; 9 功率模式2
	IsEnable     int    `json:"isEnable"`     // 是否开启功能
	IsOfflinePay int    `json:"isOfflinePay"` // 是否支持离线支付
	Free         int    `json:"free"`         // 免费
	CreatedAt    string `json:"createdAt"`
	UpdatedAt    string `json:"updatedAt"`
	DeletedAt    string `json:"deletedAt"`
}

type GetDeviceSettingSafetyInfoReq struct {
	DeviceNum string `json:"device_num"` // 设备编号
}

type GetDeviceSettingSafetyInfoResp struct {
	Code      int                            `json:"code"`      // 状态码，1 表示成功，-1表示失败
	Message   string                         `json:"message"`   // 消息描述
	Data      GetDeviceSettingSafetyInfoData `json:"data"`      // 数据，可以为 null
	Timestamp int64                          `json:"timestamp"` // 时间戳
}

type GetDeviceSettingSafetyInfoData struct {
	ID                    int    `json:"id"`                    //
	DeviceNum             string `json:"deviceNum"`             // 设备编号
	MaxTemperature        int    `json:"maxTemperature"`        // 最高温度
	MinTemperature        int    `json:"minTemperature"`        // 最低温度
	SmokeLimit            int    `json:"smokeLimit"`            // 预警烟雾浓度上限
	MaxChargeHour         int    `json:"maxChargeHour"`         // 最大单次充电时长
	PortMaxPower          int    `json:"portMaxPower"`          // 端口最高功率
	DeviceMaxPower        int    `json:"deviceMaxPower"`        // 整机最高功率
	MaxVoltage            int    `json:"maxVoltage"`            // 最高电网电压
	MinVoltage            int    `json:"minVoltage"`            // 最高电网电压
	FrequencyErr          int    `json:"frequencyErr"`          // 电网频率误差
	MinPowerFactor        int    `json:"minPowerFactor"`        // 最低功率因数
	MaxTemperatureWarning int    `json:"maxTemperatureWarning"` // 最高温度预警值
	MinTemperatureWarning int    `json:"minTemperatureWarning"` // 最低温度预警值
	DeviceMaxPowerWarning int    `json:"deviceMaxPowerWarning"` // 整机最高功率预警值
	MaxVoltageWarning     int    `json:"maxVoltageWarning"`     // 最高电网电压预警值
	MinVoltageWarning     int    `json:"minVoltageWarning"`     // 最低电网电压预警值
	Reserve               int    `json:"reserve"`               // 保留
	CreatedAt             string `json:"createdAt"`             // 创建时间
	UpdatedAt             string `json:"updatedAt"`             // 更新时间
	DeletedAt             string `json:"deletedAt"`             // 删除时间
}
